enum IpAddr2 {
    V4(u8, u8, u8, u8),
    V6(String),
}

pub fn test_enum() {
    let home = IpAddr2::V4(127, 0, 0, 1);
    let loopback = IpAddr2::V6(String::from("::1"));
}

struct Ipv4Addr3 {}
struct Ipv6Addr3 {}

enum IpAddr3 {
    V4(Ipv4Addr3),
    V6(Ipv6Addr3),
}
